<meta charset="utf-8">
<title>Validação de datas</title>

<?php
$time = date('Y/m/d H:i:s');
echo date('d/m/Y H:i:s', strtotime($time));

echo "<hr />";

$date = date('d/m/Y H:i:s', strtotime('10/05/2013'));
echo "<br />Dia ".date('d', strtotime($date)).'';
echo "<br />Mês ".date('m', strtotime($date)).'';
echo "<br />Ano ".date('Y', strtotime($date)).'';

echo "<hr />";

$mk = mktime(date('H'), date('i'), date('s'), date('d'), date('m'), date('Y'));
$datemk = date('d/m/Y H:i:s'.$mk);

echo $datemk;

echo "<hr />";


//Validação completa:
$date = '30/09/2014';
$date = explode('/', $date);

echo "<hr />";

$dia = $date[0];
$mes = $date[1];
$ano = $date[2];

$diaValidacao = true;
$mesValidacao = true;
$anoValidacao = true;

if ($ano <= date('Y') && $ano >= '1900') {
	$arUm = array('1','3','5','7','10','12');
	$arDois = array('4','6','9','11');

	if (in_array($mes, $arUm)) {
		if ($dia < 1 || $dia > 31):
			$diaValidacao =false;
			endif;
		}elseif (in_array($mes, $arDois)) {
			if ($dia < 1 || $dia > 30):
				$diaValidacao = false;
			endif;
		}elseif ($mes == 2) {
			if ($ano%4==0 && $ano%100!=0 || ($ano%400==0)){
				$fev = 29;
			}else{
				$fev = 28;
			}if($dia < 1 || $dia > $fev):
			$diaValidacao = false;
			endif;
		}
	}else{
		$mesValidacao = false;
}

	if ($anoValidacao == false) {
		echo "O ano informado é invalido, informe entre ".date('Y')." á 1900";
	}elseif ($mesValidacao == false) {
		echo "O mês informado é invalido, informe o mês valido!";
	}elseif ($diaValidacao == false) {
		echo "O dia informado é invalido";
	}else{
		echo "Data está certa!";
	}
?>